
function logged(value, context) {
  console.log(context, 'context')
  if (context.kind === 'method') { // 装饰的是一个方法
    return function(...args) { // 返回一个函数来重写被装饰的函数逻辑
      console.log('重写的逻辑', )
      // 使用 apply 来调用函数 同时指定 this 为调用函数时的对象
      const result = value.apply(this , args)
      return result
    }
  }
}

class C {
  @logged
  sum(a, b) {
    console.log(this)
    return a + b
  }
}

console.log((new C()).sum(1,2))

export {} // 使用 export 该文件独立成为一个模块